Today it is very common that data is sent over computer networks. The amount of data being sent is rapidly increasing due to the advances in technology, making it possible to send and process more data at higher speed. Furthermore, new applications also demand more data since they have become more complex. An example of computer systems where data dissemination technologies is important is an electronic trading systems.
Electronic trading of securities, derivatives, commodities and other financial instruments results in large amount of data which has to be distributed to users that the data for making trade decisions, statistical calculations and other assessments. The process of extracting and sending all this information in a high performance computer system can be very demanding for a processor. The amount of CPU time is a sparse resource that should not be wasted on executing steps that could be avoided.
Furthermore the users connected to such a centralised trading system typically want to have the information as soon as possible. In these cases it may not only be enough to boost the performance in the central system by for example updating the hardware.
In order to get rid of a bottleneck or other latency problem in the system, additional techniques may have to be used.
Thus, one such additional technique is to make the work of the processor more efficient. For example when updating a data set on a user terminal there exist different approaches.
One commonly used solution is to always send the complete new data set, which replaces the old data set. This is often inefficient when only part of the data in the sets has been changed. Thus a more efficient approach may be to only send the parts of the data set that have changed. An even further enhancement is to send the delta changes.
Another known technology is to send operators that describe the differences between two data sets. Applying the operators on the first data set converts it into the second data set.
With the selection of a good set of operators acting on the data set, optimisation is possible. There are today poor methods available for extracting data set differences.
Hence, there is a need for developing techniques for extracting and selecting operators in an efficient way, for example with a fewer number of steps, in order to reduce the load on a processor and to reduce data dissemination such as bandwidth in a computer system.